Software development is oftentimes performed by a group or team of developers. Typically, a software project is developed through design efforts, test efforts, implementation efforts and maintenance efforts. There may be different groups and different group members participating in each of these efforts. Various modeling and other development tools are used for increased communication and consistency during development of software projects.
One such tool is a database version control system, which incorporates changes to a database. However, existing database version control systems are specific to a particular database management system (DBMS), and provide for synchronization of database scripts or metadata only, meaning each developer has to manually process those scripts to sync the database. For example, one copy of the database code will be stored, maintained, backed-up, and updated for every different DBMS. When changes to the database are to be incorporated, the developer who performed the changes submits scripts or metadata changes to be available to other developers for synchronizing their local databases. These synchronization/replication methods are specific to each DBMS vendor and are performed based on the syntax and other requirements specific to the particular DBMS. Unfortunately, this requires a complex mechanism for multi-level support, synchronization, and maintenance of the database entries for each specific project.